<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Fee Demo</title>
  </head>
  <body>
    <div id="test">测试SDk</div>
    <script src="./sdk.js"></script>
    <script>
      // 模拟uuid
      if (!localStorage.getItem("custom_UUID")) {
        const customUUID = Math.random().toString().slice(-6);
        localStorage.setItem("custom_UUID", customUUID);
      }

      window.dt &&
        dt.set({
          pid: "project_test_id", // [必填]项目id, 由灯塔项目组统一分配
          uuid: localStorage.getItem("custom_UUID") || "", // [可选]设备唯一id, 用于计算uv数&设备分布. 一般在cookie中可以取到, 没有uuid可用设备mac/idfa/imei替代. 或者在storage的key中存入随机数字, 模拟设备唯一id.
          ucid: "", // [可选]用户ucid, 用于发生异常时追踪用户信息, 一般在cookie中可以取到, 没有可传空字符串

          is_test: false, // 是否为测试数据, 默认为false(测试模式下打点数据仅供浏览, 不会展示在系统中)
          record: {
            time_on_page: true, // 是否监控用户在线时长数据, 默认为true
            performance: true, // 是否监控页面载入性能, 默认为true
            js_error: true, //  是否监控页面报错信息, 默认为true
            // 配置需要监控的页面报错类别, 仅在js_error为true时生效, 默认均为true(可以将配置改为false, 以屏蔽不需要上报的错误类别)
            js_error_report_config: {
              ERROR_RUNTIME: true, // js运行时报错
              ERROR_SCRIPT: true, // js资源加载失败
              ERROR_STYLE: true, // css资源加载失败
              ERROR_IMAGE: true, // 图片资源加载失败
              ERROR_AUDIO: true, // 音频资源加载失败
              ERROR_VIDEO: true, // 视频资源加载失败
              ERROR_CONSOLE: true, // vue运行时报错
              ERROR_TRY_CATCH: true, // 未catch错误
              // 自定义检测函数, 上报前最后判断是否需要报告该错误
              // 回调函数说明
              // 传入参数 =>
              //            desc:  字符串, 错误描述
              //            stack: 字符串, 错误堆栈信息
              // 返回值 =>
              //            true  : 上报打点请求
              //            false : 不需要上报
              checkErrrorNeedReport: function (desc, stack) {
                return true;
              },
            },
          },

          // 业务方的js版本号, 会随着打点数据一起上传, 方便区分数据来源
          // 可以不填, 默认为1.0.0
          version: "1.0.0",

          // 对于如同
          // test.com/detail/1.html
          // test.com/detail/2.html
          // test.com/detail/3.html
          // ...
          // 这种页面来说, 虽然url不同, 但他们本质上是同一个页面
          // 因此需要业务方传入一个处理函数, 根据当前url解析出真实的页面类型(例如: 二手房列表/经纪人详情页), 以便灯塔系统对错误来源进行分类
          // 回调函数说明
          // 传入参数 => window.location
          // 返回值 => 对应的的页面类型(50字以内, 建议返回汉字, 方便查看), 默认是返回当前页面的url
          getPageType: function (location) {
            return `${location.host}${location.pathname}`;
          },
        });

      // 通过点击手动创建错误
      const testDOM = document.getElementById("test");
      testDOM.addEventListener("click", function () {
        console.log(window.a.b);
      });
    </script>
  </body>
</html>
